# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=lua-http
pkgver=0.3
pkgrel=1
pkgdesc="HTTP Library for Lua that supports HTTP(S) 1.0, 1.1 and 2.0"
url="https://github.com/daurnimator/lua-http"
arch="noarch"
license="MIT"
depends="lua-binaryheap lua-cqueues lua-basexx lua-fifo lua-lpeg lua-lpeg_patterns>=0.5 lua-ossl"
checkdepends="lua-busted lua5.1-compat53 lua5.2-compat53 lua5.1-bit32 luajit"
source="$pkgname-$pkgver.tar.gz::https://github.com/daurnimator/lua-http/archive/v$pkgver.tar.gz
	https://github.com/daurnimator/lua-http/commit/cb7b59474a2ca6b64474330ec2bb279c092f661a.patch
	"

case "$CARCH" in
	# FIXME: Some tests fail with "Address not available".
	# and ppc64le hangs
	aarch64|arm*|ppc64le|mips*) options="!check";;
esac

_luaversions="5.1 5.2 5.3"
for _v in $_luaversions; do
	checkdepends="$checkdepends lua$_v lua$_v-busted"
	subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
done

check() {
	local lver; for lver in $_luaversions jit; do
		msg "Testing on lua$lver"
		lua$lver /usr/bin/busted
	done
}

package() {
	mkdir -p "$pkgdir"
}

_subpackage() {
	local lver="${subpkgname:3:3}"
	pkgdesc="$pkgdesc (for Lua $lver)"
	depends="lua$lver ${depends//lua-/lua$lver-}"
	install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
	local lmod_dir="$subpkgdir/usr/share/lua/$lver"
	local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$pkgname/$pkgver-1"

	if [ "$lver" != "5.3" ]; then
		depends="$depends lua$lver-compat53"
	fi
	if [ "$lver" = "5.1" ]; then
		depends="$depends lua5.1-bit32"
	fi

	mkdir -p "$lmod_dir"
	cp -r "$builddir"/http "$lmod_dir"/

	mkdir -p "$rockdir"
	echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}

sha512sums="5728848849e8d3e99328abdc6aff3034a708f0e5884e8718a9266900a561a37850e2bf911e9cbd0d4d538799e1fd8bb4fd66008f4787011f5802b259d51f8281  lua-http-0.3.tar.gz
a4f0f329885be9ae03ef86eaf58cfa10609ae2eb58204a73eaa97840829ba555e6a3aba97120cf262ade5155887468715c92f78d32d404bba6ef9129b86a1589  cb7b59474a2ca6b64474330ec2bb279c092f661a.patch"
